package com.lp.user.service;

import com.lp.model.dto.user.UserLoginDto;
import com.lp.model.dto.user.UserRegDto;
import com.lp.model.entity.user.User;
import com.lp.model.entity.user.Userinfo;
import com.lp.model.entity.user.vo.UserVO;
import com.lp.model.entity.user.vo.UserinfoVO;
import org.springframework.stereotype.Service;


@Service
public interface IUserService {

    /**
     * 登录
     * @param loginDto 包含用户米和密码
     */
    String login(UserLoginDto loginDto);

    /**
     * 注册
     * @param regDto 包含用户名、密码、昵称
     */
    void reg(UserRegDto regDto);


    User getUserById(Long id);

    /**
     * 获取当前用户的信息
     * @param token
     */
    UserVO getCurUserVO(String token);

    /**
     * 退出登录
     * @param token
     */
    void logout(String token);

    /**
     * 根据用户名获取用户 userinfoVO 信息
     */
    UserinfoVO getUserinfoVOByUsername(String username);

    /**
     * 修改用户基本信息
     */
    void update(User user, String token);

    /**
     * 修改用户详细信息
     */
    void updateUserinfo(Userinfo userinfo);

}

